
// mongoose不允许重复创建model ，会报错 OverwriteModelError: Cannot overwrite `userlist` model once compiled
// 模块返回的是一个静态的对象，所以nodejs会有一个缓存机制
// require 第二次引入相同模块时，就使用的是缓存数据了，不会再次执行被引入模块里面的代码
// 所以我们把创建 model 的操作提取出来自定义成模块，再通过 require 引入就可以重复进行操作了

var mongoose = require('mongoose');
// 链接数据库
mongoose.connect('mongodb://localhost/jd_users');

// 通过 connection 访问到数据库实例对象
var db = mongoose.connection;

// 监听数据库的访问状态
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function () {
    // we're connected!
    console.log('数据库链接成功！');
});

// 创建 Schema
var userSchema = mongoose.Schema({
    mobile: {
        type: Number,
        unique: true  // 字段唯一性约束，书写之后 username 值是唯一的，不可重复
    },
    password: String,
    headimg: String,
});

// 创建 model
var UserModel = mongoose.model('userlist', userSchema);


// 上面这一堆代码的目的就是为了创建 model ，我们将 model 暴露出去
module.exports = {
    UserModel
}